#define _CRT_SECURE_NO_WARNINGS 1

class Solution {
public:
    int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
        unordered_map<int, int> num_map;
        int count = 0;
        for (int i = 0; i < nums1.size(); i++)
        {
            for (int j = 0; j < nums2.size(); j++)
            {
                // if(num_map.find(nums1[i]+nums2[j])!=num_map.end())
                // {
                //     num_map[nums1[i]+nums2[j]]++;
                // }
                // else
                // {
                //     num_map.insert({nums1[i]+nums2[j],1}); 
                // }
                num_map[nums1[i] + nums2[j]]++;

            }
        }

        for (int i = 0; i < nums3.size(); i++)
        {
            for (int j = 0; j < nums4.size(); j++)
            {
                int num = 0 - nums3[i] - nums4[j];
                if (num_map.find(num) != num_map.end())
                {
                    count += num_map[num];
                }

            }
        }

public:
    int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {
        unordered_map<int, int> num_map;
        int count = 0;
        for (int i = 0; i < nums1.size(); i++)
        {
            for (int j = 0; j < nums2.size(); j++)
            {
                // if(num_map.find(nums1[i]+nums2[j])!=num_map.end())
                // {
                //     num_map[nums1[i]+nums2[j]]++;
                // }
                // else
                // {
                //     num_map.insert({nums1[i]+nums2[j],1}); 
                // }
                num_map[nums1[i] + nums2[j]]++;

            }
        }

        for (int i = 0; i < nums3.size(); i++)
        {
            for (int j = 0; j < nums4.size(); j++)
            {
                int num = 0 - nums3[i] - nums4[j];
                if (num_map.find(num) != num_map.end())
                {
                    count += num_map[num];
                }

            }
        }
        return count;
    }
};